<?php
/**
 * Created by PhpStorm.
 * User: HelloWorld
 * Date: 2019/09/26
 */
class Func_MakePdf_GetIndictment
{
    private static function getTpl($template){
        include ($template);
        return $templeate;
    }
        //<%=loan_qx_desc%>
    //获取起诉状模板
    public static function get ($data,$template){
        $data['now_time'] = time();
        $tpl = self::getTpl($template);
        preg_match_all('/<%=.*?%>/', $tpl, $res);
        if ($res[0]) {
            foreach ($res[0] as $val) {
                $temp = str_replace(array('<%=', '%>'), array('', ''), $val);
                if (strpos($temp, '|')) {
                    $temp_arr = explode('|', $temp);
                    if(isset($data[$temp_arr[0]])) {
                        if (!method_exists(self::class, $temp_arr[1])) {
                            continue;
                        }
                        $temp_str = is_array($data[$temp_arr[0]]) ? $data[$temp_arr[0]][1] : $data[$temp_arr[0]];
                        $temp_str = 'self::'.$temp_arr[1].'("'.$temp_str.'")';
                        $temp_str = eval("return $temp_str;");
                    }
                } else {
                    if(isset($data[$temp])){
                        $temp_str = is_array($data[$temp]) ?  $data[$temp][1] : $data[$temp];
                    }
                }
                $tpl = str_replace($val, $temp_str, $tpl);
            }
        }
        return $tpl;
    }
    //身份证转性别
    private static function ID_to_sex($idcard){
        if(empty($idcard)) return null;
        $sexint = (int) substr($idcard, 16, 1);
        return $sexint % 2 === 0 ? '女' : '男';
    }
    //身份证转生日
    private static function ID_to_birthday ($idcard){
        if(empty($idcard)) return null;
        $bir = substr($idcard, 6, 8);
        $year = (int) substr($bir, 0, 4);
        $month = (int) substr($bir, 4, 2);
        $day = (int) substr($bir, 6, 2);
        return $year . "年" . $month . "月" . $day . '日';
    }
    //身份证转年龄
    private static function ID_to_age($idcard){
        if(empty($idcard)) return null;
        #  获得出生年月日的时间戳
        $date = strtotime(substr($idcard,6,8));
        #  获得今日的时间戳
        $today = strtotime('today');
        #  得到两个日期相差的大体年数
        $diff = floor(($today-$date)/86400/365);
        #  strtotime加上这个年数后得到那日的时间戳后与今日的时间戳相比
        $age = strtotime(substr($idcard,6,8).' +'.$diff.'years')>$today?($diff+1):$diff;
        return $age;
    }
    //金额转汉字金额
    private static  function capitalization($num){

        $c1 = "零壹贰叁肆伍陆柒捌玖";

        $c2 = "分角元拾佰仟万拾佰仟亿";

        //精确到分后面就不要了，所以只留两个小数位

        $num = round($num, 2);

        //将数字转化为整数

        $num = $num * 100;

        if (strlen($num) > 10) {

            return "金额太大，请检查";

        }

        $i = 0;

        $c = "";

        while (1) {

            if ($i == 0) {

                //获取最后一位数字

                $n = substr($num, strlen($num)-1, 1);

            } else {

                $n = $num % 10;

            }

            //每次将最后一位数字转化为中文

            $p1 = substr($c1, 3 * $n, 3);

            $p2 = substr($c2, 3 * $i, 3);

            if ($n != '0' || ($n == '0' && ($p2 == '亿' || $p2 == '万' || $p2 == '元'))) {

                $c = $p1 . $p2 . $c;

            } else {

                $c = $p1 . $c;

            }

            $i = $i + 1;

            //去掉数字最后一位了

            $num = $num / 10;

            $num = (int)$num;

            //结束循环

            if ($num == 0) {

                break;

            }

        }

        $j = 0;

        $slen = strlen($c);

        while ($j < $slen) {

            //utf8一个汉字相当3个字符

            $m = substr($c, $j, 6);

            //处理数字中很多0的情况,每次循环去掉一个汉字“零”

            if ($m == '零元' || $m == '零万' || $m == '零亿' || $m == '零零') {

                $left = substr($c, 0, $j);

                $right = substr($c, $j + 3);

                $c = $left . $right;

                $j = $j-3;

                $slen = $slen-3;

            }

            $j = $j + 3;

        }

        //这个是为了去掉类似23.0中最后一个“零”字

        if (substr($c, strlen($c)-3, 3) == '零') {

            $c = substr($c, 0, strlen($c)-3);

        }

        //将处理的汉字加上“整”

        if (empty($c)) {

            return "零元整";

        }else{

            return $c . "整";

        }
    }
    //身份证转年
    private static  function time_to_year($time){
        return date("Y",$time);
    }
    //身份证转月份
    private static  function time_to_mouth($time){
        return date("m",$time);
    }
    //身份证转天
    private static  function time_to_day($time){
        return date("d",$time);
    }
}